package pe.com.hermes.hermetic.modelo.dao;

import pe.com.hermes.hermetic.beans.PuntoBean;

import java.util.List;

public interface PuntoDAO {
    public List getBusquedaPunto(String codigoCliente, String descripcionPunto, 
                                 String codigoEquivalente, 
                                 String codigoSucursal, String moneda, String tipoPunto);

    public String getDescripcionPunto(String codigoPunto);

    public String getDescripcionPuntoCarga(String codigoPunto, 
                                           String codigoCliente);


    public PuntoBean getPunto(final String codPunto);


    public List getPuntos(String sucursal, String cliente);

    //PABLO

    public List getMantenimPuntos(final String sucursal, final String cliente, 
                                  final String lista, final String listaE, 
                                  final String tipo, final String desAgencia,
                                  final String codMat, final int sonPuntosSinAsignar);

    public List getMantenimClientes(String sucursal, String cliente, 
                                    String lista, String listaE, String tipo);

    public int getCantPuntos(String codEqui, String codPunto, String cliente);

    public void actualizarPunto(PuntoBean punto);

    public List getPuntosReferencia(String banco, String cliente, 
                                    String cuenta);

    public List buscarDestino(String nombre);

    public List buscarPunto(final String descPunto, final String cliente, final String sucursal,final String listMatrices,final String tipPunt) throws Exception;
    
    public List getListadoPunto(String codigoCliente, String descripcionPunto, 
                                String codigoEquivalente, 
                                String codigoSucursal, String moneda);

    public List getPuntosPendienteCliente(String banco, String cliente, 
                                          String cuenta);

    public void insertaPuntoReferencia(String banco, String cliente, 
                                       String cuenta, String referencia, 
                                       String punto);

    public void modificaPuntoReferencia(String banco, String cliente, 
                                        String cuenta, String referencia, 
                                        String punto);

    public List getClientesDestino(String cliente, String clie_destino);

    public List getTipoDestino();

    public boolean validaClientesDestino(String cliente);

    public List getEquiClientes(final String codCliente, 
                                final String codClieDestino);

    public List getEquiClientes(final String codCliente, 
                                final String codClieDestino, 
                                final String desDestino);

    public List getEstado();

    public int actualizarEquiCliente(final PuntoBean punto);

    public List getEquiClienteDestino(final String codCliente, 
                                      final String desDestino);

    public PuntoBean getDatosPuntoPorCliente(final String codClienteBanco, 
                                             final String codEquiCliente, 
                                             final String codEquiAgen);

    public List buscarPuntoAbono(final String descPunto, 
                                 final String cliente, 
                                 final String sucursal) throws Exception;                                             

    public List getListMatrices(String codCliente,String codSucursal,String desSucursal);
    public boolean getIsMatrizActive(String codCliente,String codSucursal);
    public String getDesMatrizFromClieAndPunt(String codCliente,String codPunt);
    public boolean getParamActive(String codCliente,String codSucursal, String codParamOpci, String codParam);
    public int inseVeCliePunt(String codCliente,String codPunto,String codMatriz);
    public int modiVeCliePunt(String codCliente,String codPunto,String codMatriz);
    public boolean existeMatrizparaPunto(String codCliente,String codPunto);
    public String getCodSucuHtbFromEquiAgen(String codCliente,String codEquiAgen);
    public List getPuntosPorCliente(String listCodCliente,String desPunto,String listCodSucu);

    public List getMantenimPuntosEqui(int sucursal, String grupCliente,
                                      String desAgencia, int codCorp,
                                      int flagAgenciasSinAsignar);
    public List<PuntoBean> getListPuntRazoSoci(String desPunt,String codClie,String codBanc,String codSucu);
}
